// 引入 iconfont 样式文件
import './assets/font/iconfont.css';

// 引入 css 文件
import './css/index.css'

// 引入print模块
// import print from "./utils/print";
import * as path from "path";

console.log('index.js文件被加载了...')
// print()


// if (module.hot) {
//   // 一旦module.hot 为true, 说明开启了HMR功能 --> 让HMR功能代码生效
//   module.hot.accept('./utils/print.js', () => {
//     // 方法会监听print.js文件的变化, 一旦发生了变化, 其他默认不会重新打包构建
//     // 会执行后面的回调函数
//     print()
//   })
// }

// context(目录路径, 是否加载子目录, 加载文件的正则表示式)
const importFn = require.context('./', true, /\.(js|vue)$/)
// console.log(importFn.keys())
// 1.使用 require 提供的函数 context 加载当前目录下的所有.vue后缀的文件
// 2.context 函数会返回一个导入函数 importFn, 它有一个属性 keys() 获取所有的文件路径
// 3.通过文件路径数组, 通过遍历数组, 在使用 importFn 根据路径导入组件对象
// 4.遍历的同时进行全局注册即可

// console.log(importFn.keys())
if (module.hot) {
  importFn.keys().filter(item => !/index.js/.test(item))
    .forEach(funcPath => {
      // console.log(funcPath)
      const regExp = /\/(\w+)\.js$/.exec(funcPath);
      const func = regExp[1];
      console.log(func)
      const funcModule = importFn(funcPath).default;
      // console.log(funcModule)
      module.hot.accept(funcPath, () => {
        // func()
        funcModule()
      })
    })
}
